#include <iostream>
#include <unistd.h>
#include <stdlib.h>
#include <string>
#include <signal.h>
#include <functional>
#include <vector>


// 闹钟
// using func_t = std::function<void()>;

// int gcount = 0;
// std::vector<func_t> gfuncs;

// // 把信号 更换 成为 硬件中断
// void handler(int signo)
// {
//     for(auto &f : gfuncs)
//     {
//         f();
//     }
//     std::cout << "gcount : " << gcount << std::endl;
//     alarm(1);
// }

// int main()
// {
//     gfuncs.push_back([]()
//                      { std::cout << "我是一个内核刷新操作" << std::endl;});

//     gfuncs.push_back([]()
//                      { std::cout << "我是一个检测进程时间片的操作，如果时间片到了，我会切换进程" << std::endl;});

//     gfuncs.push_back([]()
//                      { std::cout << "我是一个内存管理操作，定期清理操作系统内部的内存碎片" << std::endl;});

//     alarm(1);// 一次性的闹钟，超时alarm会自动被取消
//     signal(SIGALRM, handler);

//     while(true)  // gcount++;
//     {
//         pause();
//         std::cout << "我醒来了..." << std::endl;
//         gcount++;
//     }
// }
